Cloud One Workload Securityで侵入防御の動作を防御モードにしたのに「検出のみ」になるのは何故ですか?について
こんにちは、コンサル部@大阪オフィスのTodaです。
Cloud One Workload Securityを運用頂く中で、設定された保護機能に対してイベントが発生する場合がございます。
今回、侵入防御に関するイベントが発生した場合で防御モードにしているのに検出のみで処理されている物があるとお問い合わせを頂きましたのでご案内させていただきます。
質問の内容
侵入防御の動作を「防御モード」に設定した場合でも「通知のみ」になるイベントがあるのは何故か?
まず結論
侵入防御の保護ルールには防御モードの場合でも「通知のみ」で処理されるルールがあります。
上記は、影響範囲の大きなルールで「防御」にすることにより正常なシステムにも影響がでる可能性があるため初期設定では「通知のみ」に設定されています。
侵入防御の動作とルールについて
侵入防御はWorkload Securityに導入されている保護機能で、SQLインジェクション攻撃、クロスサイトスクリプティング攻撃、およびその他のWebアプリケーションの脆弱性に対する脆弱性攻撃からコンピュータを保護します。
保護する内容は設定したルールにより実施されます。
侵入防御には動作モードがあり設定により処理が実施されます。
挙動の違いはルールに一致するトラフィックをブロックするか、しないかになります。
- 防御モード: ルールを使用して一致するトラフィックを検出し、イベントの記録とトラフィックをブロックします。
- 検出モード: ルールを使用して一致するトラフィックを検出し、イベントに記録します。
上記、説明だけを見ると防御モード利用時には、ルールに一致するトラフィックイベントはブロックされるイメージですが、
実はルールに設定されている制限によりオーバーライドされます。
そのため、侵入防御は動作モードとルールの制限で下記挙動になります。
侵入防御の動作モード | ルールの動作モード | 実際の動作 |
---|---|---|
防御 | 防御 | 防御 |
防御 | 検出 | 検出 |
検出 | 防御 or 検出 | 検出 |
では、何故ルールの動作で制限が設定されている物があるかですが、 設定の影響範囲が広く、お客様のシステム動作に影響が出る可能性が高いルールはリスクがあるため初期設定時は制限が設定されています。
ルールは決まったソフトウェアバージョンで決まった処理をした場合に、脆弱性が発生するようなものが定義されています。
例でルール:1000763 - URI Length And Depth Restriction の場合は決まったソフトウェアバージョン(※1)を利用している状態で長いURLを利用するとバッファオーバーフローが発生する脆弱性ですが、指定のソフトウェアを使っていない場合は影響がなく、お客様で利用しているシステムで長いURLを使っている場合に誤判定を受ける場合がございます。
そのため、他のシステムに影響がでる可能性の高いルールは初期設定時は検出のみになる設定されています。
侵入防御のルール一覧で確認すると、検出のみになるルールが確認できます。
※1:
Apache Software Foundation Tomcat JK Web Server Connector 1.2.19
Apache Software Foundation Tomcat JK Web Server Connector 1.2.20
ルールのモードを変更する場合の確認事項
対象ルールが「検出のみ」になっている場合で、急遽仮想パッチとしてブロックをしたい場合は制限を解除することで対象のトラフィックをブロックする事ができるようになります。
制限を解除する場合は下記2点の確認を頂いた後に対応ください。
・変更予定のルールで遮断されるトラフィックの確認
現在、検出のみで止まっているイベントがお客様のシステムで利用している通信でないか再確認ください。
ルールの制限を解除した場合、通信がブロックされますので問題ないことを確認ください。
・対象の脆弱性対策ができないか確認
ルール内には脆弱性の対象アプリケーションの記載がございます。
アプリケーションのバージョンをアップデートすることで対策が出来る場合がございますのでアップデートで対応できないかをご確認ください。
関連アプリケーションの動作環境を維持するためアップデートがすぐできず、仮想パッチとして利用頂く場合は制限を解除いただく流れになります。
実際の設定変更
では実際に、制限を解除してみます。
解除はポリシー単位またはコンピュータ単位となっております。
今回は、影響範囲が小さいコンピュータへのルール変更を実施します。
※ 複数台同じインスタンスがある場合、Auto Scaling管理の場合、一括して適用する場合はポリシー設定を活用ください。
Workload Security画面の表示
CloudOneにログインをおこない、Workload Securityの管理画面に移動をします。
イベントとレポートから対象インスタンス・ルール確認
イベントとレポートから侵入防御のイベントを確認して、対象ルールとインスタンスを確認します。 今回は侵入防御ルール:1000763を仮で利用しています。
一覧で確認すると処理が「検出のみ:リセット」となっているため検出のみで処理されていることがわかります。
対象のイベントをダブルクリックして詳細を開き表示内容から「対象コンピュータ」と「対象ルール」を確認します。
コンピュータのルール設定確認
対象のコンピュータをダブルクリックして詳細画面を表示します。
[侵入防御]のメニューをクリックして表示される画面にある侵入防御ルールの一覧から対象のルールを探しモードが「検出のみ」になっていることを確認してダブルクリックで詳細画面を表示します。
ルールのモード変更
ルールの詳細画面にて[侵入防御ルールプロパティ]を選択いただき、スクロールすると表示されるモードを
「継承(検出のみ)」から「防御」に変更をおこない適用をクリックします。
適用をしたタイミングで対象のトラフィックはブロックされますので注意ください。
ルールの適用確認
先ほどの一覧に戻り、モードが「防御」に変わってる点とルール名が太字(個別設定あり)になっている事を確認します。
上記で設定操作は完了になります。
イベントとレポートの再確認
実際ルール設定が完了してから発生するイベントを確認頂き、トラフィックがブロックされている事を確認します。
イベントを確認すると「検出のみ:リセット」となっていた物が「リセット」のみに変わっていますのでトラフィックがブロックされたことになります。
さいごに
侵入防御(仮想パッチ)によるブロックは一時的な対策となります。
脆弱性のあるバージョンはリスクがあるため早期に対策されたバージョンへのアップデート等を実施頂く事を推奨させていただきます。
また、対策後はルールによる防御が必要なくなりますので「検出のみ」に戻して頂く事が推奨になります。
今回は Cloud One Workload Securityの侵入防御の動作を防御モードにしたのに「検出のみ」になるなるのは何故かについて紹介いたしました。
少しでもお客様の参考になればと考えております。